/**
 * 角色枚举定义了系统中的两种角色类型。
 * 枚举类型提供了一种强类型的方式来表示一组值，这里用于表示用户的角色身份。
 */
export enum Role {
  /**
   * 管理员角色标识。
   * 使用枚举值1来代表管理员角色，枚举值在类型系统中提供了明确和安全的使用方式。
   */
  Admin = 1,
  /**
   * 普通用户角色标识。
   * 使用枚举值2来代表普通用户角色，枚举值的使用有助于清晰地表达角色之间的区别。
   */
  Normal = 2
}

/**
 * 枚举类型Code定义了常见的HTTP状态码以及一些自定义的错误码。
 * 这些码用于标识API调用的成功与否以及具体的错误类型。
 */
export enum Code {
  /**
   * 表示请求成功，对应HTTP状态码200。
   */
  Success = 200,
  /**
   * 表示请求失败，通常由于客户端错误，对应HTTP状态码400。
   */
  Fail = 400,
  /**
   * 表示服务器错误，对应HTTP状态码500。
   */
  Error = 500,
  /**
   * 表示未授权的请求，对应HTTP状态码401。
   */
  NoAuth = 401,
  /**
   * 表示请求被禁止，对应HTTP状态码403。
   */
  NoPer = 403
}

/**
 * 导出一个名为ProductMode的枚举类型
 * 该枚举列出了产品模式
 */
export enum ProductMode {
  /**
   * 本地客户端模式
   */
  LocalClient = 0,

  /**
   * 服务器客户端模式
   */
  ServerClient = 1,

  /**
   * 网络服务器模式
   */
  WebServer = 2
}

export enum FileType {
  Xlsx = "xlsx",
  Xls = "xls",
  Csv = "csv",
  Txt = "txt",
  Et = "et"
}

/**
 * 数据类型
 */
export enum DataType {
  CallRecord = 1,
  BankRecord = 2,
  CallUser = 3,
  BankUser = 4
}

/**
 * 数据组来源
 */
export enum DataGroupSource {
  Import = "导入",
  Merge = "合并",
  Split = "拆分"
}

export const Enum = { Role, Code, ProductMode, FileType, DataType, DataGroupSource };
